// 引入electron并创建一个Browserwindow
const {app, BrowserWindow, Menu} = require('electron')
const path = require('path')
const url = require('url')
// 保持window对象的全局引用,避免JavaScript对象被垃圾回收时,窗口被自动关闭.
let mainWindow
function createWindow () {
  //创建浏览器窗口,宽高自定义具体大小你开心就好
  mainWindow = new BrowserWindow({width: 800, height: 600})

  // 加载应用----适用于 react 项目
  if (process.env.NODE_ENV?.trim() === "development") {
    mainWindow.loadURL('http://localhost:3000/');
    console.log("load dev");
  } else {
    // 加载应用----- electron-quick-start中默认的加载入口
    mainWindow.loadURL(url.format({
      pathname: path.join(__dirname, 'build/index.html'),
      protocol: 'file:',
      slashes: true
    }))
    console.log("load prod");
  }
  
  // 打开开发者工具，默认不打开
  // mainWindow.webContents.openDevTools()
  Menu.setApplicationMenu(null)
  // 关闭window时触发下列事件.
  mainWindow.on('closed', function () {
    mainWindow = null
  })
}
// 当 Electron 完成初始化并准备创建浏览器窗口时调用此方法
app.whenReady().then(() => {
  createWindow()
  
  app.on('activate', function () {
     // macOS中点击Dock图标时没有已打开的其余应用窗口时,则通常在应用中重建一个窗口
    if (BrowserWindow.getAllWindows().length === 0) createWindow()
  })
})

// 所有窗口关闭时退出应用.
app.on('window-all-closed', function () {
  if (process.platform !== 'darwin') app.quit()
})
